<template>
    <div class="loginTemplate">
      <el-form :rules="rules" ref="loginForm" :model="loginForm" class="loginContainer">
          <h3 class="loginTitle">后台管理系统</h3>
          <el-form-item prop="username">
              <el-input type="text" v-model="loginForm.username" auto-complete="off" placeholder="请输入用户名" ></el-input>
          </el-form-item>
          <el-form-item prop="password">
              <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="请输入密码" @keydown.enter.native="submitLogin"></el-input>
          </el-form-item>
          <el-checkbox class="loginRemember" v-model="checked">记住密码</el-checkbox>
          <el-button type="primary" style="width: 100%;" @click="submitLogin">登录</el-button>
      </el-form>
    </div>
</template>

<script>
    import {Encrypt} from '../../utils/aes.js'
    export default {
        name: "Login",
        data(){
            return{
                loginForm:{
                    username:'',
                    password:'',
                    grant_type:'password',
                    client_id:'211214C8TND4C8SW',
                    client_secret:'123456'
                },
                checked:true,
                rules:{
                    username:[{required:true,message:'请输入用户名',trigger:'blur'}],
                    password:[{required:true,message:'请输入密码',trigger:'blur'}]
                }
            }
        },
        methods:{
            async submitLogin(){
                this.$message.warning('正在自动登录');
                this.loginForm.password = Encrypt(this.loginForm.password);
                this.$refs.loginForm.validate((valid) => {
                    if (valid) {
                        this.postKeyValueRequest('/authorization/oauth/token',this.loginForm).then(resp=>{
                            if (resp){
                                window.sessionStorage.setItem("userInfo",JSON.stringify(resp.data));
                                window.sessionStorage.setItem("access_token",resp.data.access_token);
                                window.sessionStorage.setItem("refresh_token",resp.data.refresh_token);
                                let path = this.$route.query.redirect;
                                this.$router.replace((path=='/' || path==undefined)?'/home':path);
                            }
                        })
                    } else {
                        this.$message.error('请输入所有字段');
                        return false;
                    }
              });
            }
        }
    }
</script>

<style>
    .loginTemplate{
        /* 固定在屏幕的最上方和最左方 */
        position:fixed;
        /* 设置子元素垂直居中 */
        display: flex;
        align-items: center;
        top: 0;
        left: 0;
        /* 全屏效果 */
        width:100%;
        height:100%;
        /* 屏幕宽度在1000px以内时，div的大小保持不变 */
        min-width: 1000px;
        /* 在各个层级的下方 */
        z-index:-10;
        zoom: 1;
        background-color: #fff;
        background: url("../../static/images/back_login.jpg");
        background-repeat: no-repeat;
        background-size: cover;
        -webkit-background-size: cover;
        -o-background-size: cover;
        background-position: center 0;
    }
    .loginContainer{
        /*设置元素圆角*/
        border-radius: 15px;
        /*设置元素的背景延伸至内边距外沿,不会绘制到边框处*/
        background-clip: padding-box;
        /*设置该元素水平是居中的*/
        margin: auto;
        /*设置元素宽度,此时元素垂直居中*/
        width: 350px;
        /*设置元素内边距上 右 下 左*/
        padding: 35px 35px 15px 35px;
        /*设置元素背景*/
        background: #ffffff;
        /*设置元素边框宽度 样式 颜色*/
        border: 1px solid #eaeaea;
        /*设置元素阴影的效果x偏移 y偏移 阴影模糊(扩散)半径 阴影颜色*/
        box-shadow: 0 0 25px #cacac6;
    }
    .loginTitle{
        /*设置元素外边距上 右 下 左*/
        margin: 0px auto 40px auto;
        /*设置元素内容居中*/
        text-align: center;
        /*设置元素颜色*/
        color: #505458;
    }
    .loginRemember{
        /*设置元素内容靠左*/
        text-align: left;
        /*设置元素外边距上 右 下 左*/
        margin: 0px 0px 15px 0px;
    }
</style>
